In-memory DB arrangements are advantageous (e.g., over in-disk DB arrangements) in terms of a speed in answering DB access requests (e.g., post or write requests; get or read requests). Further, multi-regional in-memory DB arrangements operating in differing regions from one another are advantageous in that a plurality of DB instances are able to share the load of servicing of incoming requests. Still further, regionally-separated locations provide redundancy protection in that if a failure occurs (for example, by a disaster such as: earthquake; flood; tornado; power outage; terrorism) affecting operations of a DB located in a disaster-affected region, a DB located in a remote unaffected region can carry on with servicing incoming requests.
In order to further improve a speed in answering DB access requests (e.g., post or write requests; get or read requests), each DB instance may be provisioned (in advance of receipt of an access request) with a plurality of (i.e., a pool of) predefined connections useable for satisfying DB access requests. For example, if three predefined connections are provisioned with respect to a subject DB instance, an individual one of those predefined connections may be temporarily assigned (e.g., lent) for use in accessing the subject DB to satisfy an individual incoming access request (e.g., to post or write data into the DB, or to get or read data from the DB). Once that access request is satisfied or completed, that individual predefined connection may be returned to the pool of predefined connections to remain useable for satisfying additional future DB access requests.
Such pool arrangement is advantageous in that a setup-time-penalty for initially setting up each connection is performed in advance, before receiving access requests, such that a time for conducting each subsequent access request is shortened in that the access operation for an access request does not have to include the initial setup-time-penalty. Still further, since the predefined connections are recycled back into the connection pool after completing an access request, the initial setup-time-penalty for setting up each connection is only incurred once per connection, while the connection itself is then used to satisfy multiple access requests.
Despite the aforementioned advantages, there still exists a problem that one or more of the predefined connections may at times, be rendered permanently inoperable or unusable (i.e., invalid) as a result of any of plural possible causes. As one example, a physical path of a connection may become interrupted. As another example, network addressing may be reinitialized and changed due to a temporary loss of a network connection (e.g., due to a power outage).
Once a predefined connection becomes invalid, that connection is subsequently no longer useable to satisfy any incoming DB access request. The greater the number of pool connections which become invalid within a pool, the greater the inefficiency in using that pool of pool connections to access the subject DB. For example, if the invalid connection persists as a member of the pool and is again assigned to satisfy an access request, an attempted connection would not be successful, and then accommodations would have to be invoked to assign a differing connection to satisfy the access request. Such adds to the time to satisfy the access request, resulting in an increase in an average time for the pool to satisfy access requests. As a direr situation, if all the connections within a pool become invalid, then the DB may become inaccessible via those pool connections. What is needed is an arrangement having a reconnection resiliency ability for self-correcting or self-compensating for pool connections when one or more connection experiences an incidence of invalidity.